Skip to main content

Recovery decision table

SituationRecommended action
/sale or /refund timeout / disconnect / serial CRC failureResend the same request with the same documentExtID.
/sale or /refund returns docStatus = 0Poll /check_status until final state.
/sale or /refund returns code = 9 in unknown-delivery scenarioResend same request with same documentExtID.
/sale or /refund returns code = 9 in normal confirmed flowTreat as terminal input issue, verify ids/payload.
/deposit or /withdraw timeout with known documentExtIDCall /check_status first.
/deposit or /withdraw timeout, then /check_status returns code = 9Resend same request with same documentExtID (document may have been rolled back/deleted).
/deposit or /withdraw retry correlationKeep same amount and same operation type; use same documentExtID (or documentID) for deterministic resume.
Any route returns code = 15 (DOCUMENT_NOT_PRINTED), or any non-null printError regardless of code (see §8.1)Do not assume business failure; run print-error flow (/check_status, then /check_copy when applicable).
/close_shift returns code = 24 (SHIFT_HAS_OPEN_DOCS)Resend with explicit openOrdersOperation (delete or renew).
Any route returns code = 44 (CASHBOX_BUSY)Transient — short backoff, resend same request unchanged.
Any route returns no code (null)Known business-rule error — show message as-is, do not retry blindly.
Client cannot safely reproduce original payloadPrefer /check_status first, then decide on resend.